The User Interface Programming System
<#4801#>
As defined by CLUE, contact objects represent an intermediate level of
abstraction within a larger user interface programming system.
CLUE relies upon the services of a lower-level subsystem typically referred to as
a <#125#>window system<#125#>. CLUE, in turn, forms the basis for a
more comprehensive <#127#>user interface management system<#127#>
(UIMS).
CLUE depends on a window system to provide programmer interfaces for controlling
interactive I/O hardware --- the display screen(s), the keyboard, the
pointer, etc. Specifically, CLUE is defined in
terms of the X Window System protocol[#x-protocol##1###] and CLX, the
Common Lisp programmer's interface to the X Window System[#clx##1###].
Most window systems, including X, contain a component that is commonly called the
<#133#>window manager<#133#>. The window manager is the
part of the window system that provides a user interface to various operations on
windows --- changing a window's position, size, visibility, etc.
Since an X window manager is simply another application program (albeit a rather
specialized one), the
definition of a window manager is <#135#>not<#135#> included in the CLUE specification.
CLUE distinguishes two different aspects of programming the user
interface:
- Defining a contact
- Using a contact
The <#138#>application programmer<#138#> who
instantiates and uses a contact object does not need to know
how the class and methods of the contact were implemented
by the
<#140#>contact programmer<#140#>.
In particular, the
window system interfaces used by the contact programmer need not be
visible to the CLUE application programmer.
This distinction contributes to the separation of application
programming
from user interface programming, one of the primary goals of a
UIMS.
In terms of the Seeheim UIMS model[#pfaff-uims##1###], contacts represent
the presentation (or lexical) component of a user interface.
<#4811#>by-1<#4811#>
=0 <#4812#>=0 <#4816#>